package com.xqboss.apps.vo.team;

import com.xqboss.apps.domain.consumer.ConsumerTeamGainRule;
import com.xqboss.apps.domain.consumer.ConsumerTeamUpgradePlan;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;


/**
 * 队伍升级-增幅配置Vo
 *
 * @author makejava
 * @since 2023-12-15 14:27:09
 */
@Data
@ApiModel("队伍升级-增幅配置Vo")
public class ConsumerTeamUpgradeAmplifyVo {

    @ApiModelProperty("队伍升级开关")
    @NotNull(message = "升级开关不能为空")
    private Boolean upgradeSwitch;

    @ApiModelProperty("最高等级")
    @NotNull(message = "最高等级不能为空")
    @Min(message = "最高等级不能小于0", value = 0)
    private Integer maxLevel;

    @ApiModelProperty("人员扩充幅度")
    @NotNull(message = "人员扩充幅度不能为空")
    @Min(value = 0, message = "人员扩充幅度不能小于0")
    private Integer expandRange;

    @ApiModelProperty("升级打卡次数叠加")
    @NotNull(message = "升级打卡次数不能为空")
    @Min(value = 0, message = "升级打卡次数不能小于0")
    private Integer punchCount;

    @ApiModelProperty("升级增幅比例叠加")
    @NotNull(message = "升级增幅比例不能为空")
    @DecimalMin(value = "0", message = "升级增幅比例不能小于0")
    private BigDecimal increaseRate;

    @ApiModelProperty("家庭主成员奖励抽成")
    @NotNull(message = "家庭主成员奖励抽成不能为空")
    @DecimalMin(value = "0", message = "家庭主成员奖励抽成不能小于0")
    private BigDecimal familyMemberAward;

    @ApiModelProperty("队长奖励抽成")
    @NotNull(message = "队长奖励抽成不能为空")
    @DecimalMin(value = "0", message = "队长奖励抽成不能小于0")
    private BigDecimal captainAward;

    @ApiModelProperty("增幅规则")
    @NotEmpty(message = "增幅规则不能为空")
    private List<ConsumerTeamGainRule> teamGainRule;

    @ApiModelProperty("升级方案")
    @NotEmpty(message = "升级方案不能为空")
    private List<ConsumerTeamUpgradePlan> teamUpgradePlan;
}

